import pytest

from calc import add,sub
add_cases=[[1,2,3],[-1,-2,-3],[1,0,1],[-1,0,-1]]
sub_cases=[[1,2,-1],[-1,-2,1],[1,0,1],[-1,0,-1]]
# @pytest.fixture(scope='module',autouse=True)  #默认对每个测试函数起作用,测试固件，每个文件中所有测试函数，测试固件，每个文件之和
# def init_calc():  #init_calc是测试固件名字
#     print('每一条测试用例的初始化')
#     yield  #结束时执行
#     print('一条用例执行结束了')
@pytest.mark.parametrize('a,b,expect',add_cases)  #参数化：执行大量用例
def test_add(a,b,expect):  #init_calc是测试固件名字
    actual=add(a,b)  #实际结果
    assert actual==expect,f'测试失败==预期：{expect}==实际：{actual}'
@pytest.mark.parametrize('a,b,expect',sub_cases)
def test_sub(a,b,expect):  #不写init_calc，不执行测试固件
    actual=sub(a,b)
    assert actual==expect,f'测试失败==预期：{expect}==实际：{actual}'
if __name__=='__main__':
    pytest.main(['--tb=line','--html=calc.html','ceshi_calc3.py'])   #-s是允许执行print  ,--tb=short、--tb=line错误跟踪回溯（TraceBack）'--html=calc.html'生成测试报告




